#define _CRT_SECURE_NO_WARNINGS
#include <vector>
#include <algorithm>
using namespace std;
//#include <iostream>
//#include <algorithm>
//using namespace std;
//
//int main()
//{
//    int a, b;
//    cin >> a >> b;
//    int i = min(a, b);
//    int j = max(a, b);
//    while (i % j != 0)
//    {
//        j = i;
//        i = i % j;
//
//    }
//    cout << i << endl;
//    //cout << a*b/i << endl;
//    return 0;
//}

//class Solution {
//public:
//    static int MLS(vector<int>& arr)
//    {
//        sort(arr.begin(), arr.end());
//        int len = 0;
//        int ret = 0;
//        for (int i = 0; i < arr.size() - 1; i++)
//        {
//            while (i < arr.size() - 1 && arr[i] == arr[i + 1])
//            {
//                i++;
//            }
//            if (arr[i + 1] - arr[i] == 1)
//            {
//                len++;
//            }
//            else
//            {
//                ret = max(ret, len);
//                len = 0;
//            }
//
//        }
//        return ret + 1;
//    }
//};
//int main()
//{
//    vector<int> arr = { 1,2,2,3,3,3,4 };
//    Solution::MLS(arr);
//    return 0;
//}

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
int m, n;
int ret = 0;
int dx[] = { 1, 0 };
int dy[] = { 0, 1 };
bool vis[501][501] = { 0 };
void dfs(int sr, int sc, vector<vector<char>>& board, int score)
{
    switch (board[sr][sc])
    {
    case 'l':
        score += 4;
        break;
    case 'o':
        score += 3;
        break;
    case 'v':
        score += 2;
        break;
    case 'e':
        score += 1;
        break;
    }
    if (sr == m - 1 && sc == n - 1)
    {
        ret = max(ret, score);
        return;
    }
    for (int i = 0; i < 2; i++)
    {
        int x = sr + dx[i]; int y = sc + dy[i];

        if (x >= 0 && x < m && y >= 0 && y < n && vis[x][y] == false)
        {
            vis[x][y] = true;
            dfs(x, y, board, score);
            vis[x][y] = false;

        }
    }
}
int main()
{
    cin >> m >> n;
    vector<vector<char>> board(m, vector<char>(n));
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> board[i][j];
        }
    }
    int score = 0;
    dfs(0, 0, board, score);
    cout << ret << endl;
    return 0;

}